package avicit.bdp.dms.approval.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.common.dto.approval.ApprovalDTO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-06-20
 * @类说明：ApprovalDAO
 * @修改记录：
 * @注意事项：
 * @主要功能：审批中心DAO
 */
@Repository
public interface ApprovalDAO extends BaseDAO<ApprovalDTO> {
    /**
     * 分页查询-根据条件查询审批/申请列表
     * @param type
     * @param state
     * @param startTime
     * @param endTime
     * @param keyWords
     * @param loginUserId
     * @return
     */
    Page<ApprovalDTO> queryApprovalByCond(@Param("type") Integer type,
                                          @Param("state") Integer state,
                                          @Param("startTime") String startTime,
                                          @Param("endTime") String endTime,
                                          @Param("keyWords") String keyWords,
                                          @Param("loginUserId") String loginUserId);

    /**
     * 查看详情
     * @param id
     * @return
     */
    ApprovalDTO getApprovalDetail(@Param("id")String id);

    /**
     * 根据条件查询审批记录
     * @param businessId
     * @param businessVersion
     * @return
     */
    ApprovalDTO getApprovalByCond(@Param("businessId")String businessId, @Param("businessVersion")String businessVersion);

    /**
     * 删除/批量删除作业
     * @param idList
     * @return
     */
    int deleteApprovalByCond(@Param("idList")List<String> idList);

    /**
     * 批量新增
     * @param applyList
     * @return
     */
    int batchInsertApproval(@Param("applyList") List<ApprovalDTO> applyList);

    /**
     * 批量修改
     * @param applyList
     * @return
     */
    int batchUpdateApproval(@Param("applyList") List<ApprovalDTO> applyList);
}
